package priv.conceit.sc.hoxton.auth.core.chain;

import priv.conceit.sc.hoxton.common.entity.auth.authority.pojo.User;
import priv.conceit.sc.hoxton.common.entity.auth.authority.qo.UserLoginQO;

/**
 * sc-hoxton
 * 不同于servlet的FilterChain 用户的登陆责任链只处理自己负责的部分
 * 准确的说更接近策略模式
 *
 * @author conceit
 * @since 1.0.0, 2020/11/4
 */
public interface UserLoginAccountChainHandler {

	/**
	 * doHandler 执行过滤器链
	 *
	 * 返回
	 * null 执行下一个
	 * AuthUser 登陆用户请求信息
	 *
	 * @param userLoginQO
	 * @return AuthUser
	 * @author conceit
	 * @date 2020/11/4 17:00
	 */
	User doHandler(UserLoginQO userLoginQO);
}
